package com.wbao.dianniu.customView;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.wbao.dianniu.R;


public class CustomDialog extends Dialog {

	public CustomDialog(Context context) {
		super(context);
	}

	public CustomDialog(Context context, int theme) {
		super(context, theme);
	}
	
	public static class Builder{
		private Context context;
		private String title;
		private String message;
		private String positiveButtonText;  
        private String negativeButtonText;  
//        private View contentView;  
        private OnClickListener positiveButtonClickListener;
        private OnClickListener negativeButtonClickListener;
        private boolean titleFlag = true;
        private boolean messageFlag = true;
  
        public Builder(Context context) {  
            this.context = context;  
        }  
  
        public Builder setMessage(String message) {  
            this.message = message;  
            return this;  
        }  
  
        /** 
         * Set the Dialog message from resource 
         *  
         * @param message
         * @return 
         */  
        public Builder setMessage(int message) {  
            this.message = context.getResources().getString(message);  
            return this;  
        }  
  
        /** 
         * Set the Dialog title from resource 
         *  
         * @param title 
         * @return 
         */  
        public Builder setTitle(int title) {  
            this.title = (String) context.getText(title);  
            return this;  
        }  
  
        /** 
         * Set the Dialog title from String 
         *  
         * @param title 
         * @return 
         */  
  
        public Builder setTitle(String title) {  
            this.title = title;  
            return this;  
        }  
  
//        public Builder setContentView(View v) {  
//            this.contentView = v;  
//            return this;  
//        }  
  
        /** 
         * Set the positive button resource and it's listener 
         *  
         * @param positiveButtonText 
         * @return 
         */  
        public Builder setPositiveButton(int positiveButtonText,  
                OnClickListener listener) {
            this.positiveButtonText = (String) context  
                    .getText(positiveButtonText);  
            this.positiveButtonClickListener = listener;  
            return this;  
        }  
  
        public Builder setPositiveButton(String positiveButtonText,  
                OnClickListener listener) {
            this.positiveButtonText = positiveButtonText;  
            this.positiveButtonClickListener = listener;  
            return this;  
        }  
  
        public Builder setNegativeButton(int negativeButtonText,  
                OnClickListener listener) {
            this.negativeButtonText = (String) context  
                    .getText(negativeButtonText);  
            this.negativeButtonClickListener = listener;  
            return this;  
        }  
  
        public Builder setNegativeButton(String negativeButtonText,  
                OnClickListener listener) {
            this.negativeButtonText = negativeButtonText;  
            this.negativeButtonClickListener = listener;  
            return this;  
        }  
		
        public void setTitleVisbily(boolean flag){
        	this.messageFlag= flag;
        }
        public void setMessageVisbily(boolean flag){
        	this.titleFlag= flag;
        }
        
        
        public CustomDialog create() {  
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
            // instantiate the dialog with the custom Theme  
            final CustomDialog dialog = new CustomDialog(context,R.style.custom_Dialog);  
            View layout = inflater.inflate(R.layout.custom_title_dialog, null);

            // set the dialog title
            if(null != title){
            	  ((TextView) layout.findViewById(R.id.title)).setText(title);  
            }else{
            	  layout.findViewById(R.id.title).setVisibility(View.GONE);
            }
            // set the confirm button  
            if (positiveButtonText != null) {  
                ((Button) layout.findViewById(R.id.confirmBtn))  
                        .setText(positiveButtonText);  
                if (positiveButtonClickListener != null) {  
                    layout.findViewById(R.id.confirmBtn)
                            .setOnClickListener(new View.OnClickListener() {  
                                public void onClick(View v) {  
                                    positiveButtonClickListener.onClick(dialog,  
                                            DialogInterface.BUTTON_POSITIVE);  
                                }  
                            });  
                }  
            } else {  
                // if no confirm button just set the visibility to GONE  
                layout.findViewById(R.id.confirmBtn).setVisibility(View.GONE);  
            }  
            // set the cancel button  
            if (negativeButtonText != null) {  
                ((Button) layout.findViewById(R.id.cancelBtn))  
                        .setText(negativeButtonText);  
                if (negativeButtonClickListener != null) {  
                    layout.findViewById(R.id.cancelBtn)
                            .setOnClickListener(new View.OnClickListener() {  
                                public void onClick(View v) {  
                                    negativeButtonClickListener.onClick(dialog,  
                                            DialogInterface.BUTTON_NEGATIVE);  
                                }  
                            });  
                }  
            } else {  
                // if no confirm button just set the visibility to GONE  
                layout.findViewById(R.id.cancelBtn).setVisibility(View.GONE);  
            }  
            // set the content message  
            if (message != null) {  
                ((TextView) layout.findViewById(R.id.custom_message)).setText(message);  
            }else{
            	   layout.findViewById(R.id.custom_message).setVisibility(View.GONE);
            } 
            
            /*if (contentView != null) { 
                // if no message set  
                // add the contentView to the dialog body  
                ((LinearLayout) layout.findViewById(R.id.custom_content)).removeAllViews();  
                ((LinearLayout) layout.findViewById(R.id.custom_content))  
                        .addView(contentView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));  
            } else{
            	 ((LinearLayout) layout.findViewById(R.id.custom_content)).setVisibility(View.GONE);
            }*/
            dialog.setContentView(layout);
            return dialog;  
        }  
        
	}
	
	
	

}
